package com.zdsoft.finance.product.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.zdsoft.finance.base.service.BaseService;
import com.zdsoft.finance.common.exception.BusinessException;
import com.zdsoft.finance.product.entity.Product;

/**
 * 产品操作
 * @author longwei
 * @date 2016/11/22
 * @version 1.0
 */
public interface ProductService extends BaseService<Product>{

	/**
	 * 通过产品编号查询产品
	 * @param code 产品编号
	 * @return 产品实体
	 */
	public Product findByCode(String code);
	
	/**
	 * 通过产品对象查询，并分页
	 * @param product 产品对象
 	 * @param pageable 分页信息
	 * @return 分页结果
	 * @throws BusinessException
	 */
	public Page<Product> findByProduct(Product product,Pageable pageable) throws BusinessException;
	
	/**
	 * 测试方法，请勿使用
	 */
	public Product testTransacationalSave(Product product);
	
	/**
	 * 测试方法，请勿使用
	 */
	public Product testSave(Product product);
	
	/**
	 * 测试方法，请勿使用
	 */
	public Product testFind(Product product);
	
}
